Use of General Purpose 8051 Board |
This is one example of how I would use the 8051 (actually an 8051 family component from
Atmel, the
AT89S8252)
in my development of software at Photographic Sciences Corporation (PSC). The industrial scanners I worked on were
used over the conveyor systems in warehouses and distribution centers. They would
typically be connected to:
- at least one tachometer to measure the conveyor belt speed,
- up to seven photoeye sensors to determine package height,
- at least two additional photoeye sensors to determine the position of the
package along the conveyor belt,
- one or two serial data links to the host conveyor control system
The software I developed would have to interpret events from the photoeye sensors,
the belt speed, and data messages from the host system. There could be as many as
twelve packages within the view of the barcode scanner, and the labels on those packages
could be scanned in any order.
For example, the scanner could scan a barcode label on the 3rd package first, then the
12th, then the 1st, then the 10th. The software had to use the information from the
photoeye sensors and tachometers to correctly determine which label was scanned from
which package, and then transmit the data from each package when that package reached
a certain point on the conveyor.
General Purpose 8051 Board |
There was always the possibility that a photoeye could be accidently triggered by a
piece of tape stuck to the conveyor belt, or something similar. So, the software had
to occasionally deal with random events that should be ignored. Setting up a complete
system, and testing all of the particular scenarios was quite time consuming. I wanted
something that I could use at my desk to simulate this, and speed things up.
I developed a Windows program (using Borland C++ Builder) that would allow me to define
how the various signals should act. This information was then sent from my desktop PC
to the general purpose 8051 board. The 8051 board would then simulate the various signals
and send them in to the barcode scanner. I could therefore change various parameters
in the Windows GUI to simulate real world 'error conditions', and see if the barcode
scanner would correctly handle them. The PC could not simulate the signals directly
because PCs are not capable of generating signals with the precise timing that the
barcode scanner system expected.
See other projects I did at PSC
HERE.